package com.cn.serverline.lineicp.produce.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cn.serverline.lineicp.produce.entity.dto.ContinueDto;
import com.cn.serverline.lineicp.produce.entity.vo.AssemblyTaskVo;
import com.cn.serverline.lineicp.produce.entity.vo.AssemblysTaskVo;
import com.cn.serverline.lineicp.produce.entity.vo.EquipmentTaskVo;
import com.cn.serverline.lineicp.produce.entity.dto.AddStartTimeDto;
import com.cn.serverline.lineicp.produce.entity.dto.EquipmentTaskDto;
import com.cn.serverline.lineicp.produce.entity.vo.MaterialComponentsVo;
import com.cn.serverline.lineicp.produce.entity.vo.MaterialResourcesVo;
import com.cn.serverline.lineicp.workshopPlan.entity.PlanLineSchedule;
import com.cn.serverline.lineicp.produce.entity.vo.EquipmentTaskVo;
import com.cn.serverline.lineicp.workshopPlan.entity.request.ExamineRequest;

import java.util.List;
import java.util.Map;

public interface TaskService extends IService<PlanLineSchedule> {

    /**
     * 获取部装任务
     * @param equipmentTaskDto
     * @return
     */
    List<EquipmentTaskVo> getEquipment(EquipmentTaskDto equipmentTaskDto);

    /**
     * 获取总装任务
     *
     * @param equipmentTaskDto
     * @return
     */
    List<AssemblysTaskVo> getAssembly(EquipmentTaskDto equipmentTaskDto);

    /**
     * 获取总装进行中的任务
     * @param equipmentTaskDto
     * @return
     */
    List<AssemblyTaskVo> getAssemblyIn(EquipmentTaskDto equipmentTaskDto);

    /**
     * 开工检查(消耗材料、零组件)
     *
     * @param examineRequest
     * @return
     */
    List<MaterialComponentsVo> CommencementInspectionExamine(ExamineRequest examineRequest);

    /**
     * 开工检擦(工具、工装、设备)
     *
     * @param examineRequest
     * @return
     */
    List<MaterialResourcesVo> CommencementResourcesExamine(ExamineRequest examineRequest);

    /**
     * 保存开工时间
     *
     * @param addStartTimeDto
     */
    void AddStartTime(AddStartTimeDto addStartTimeDto);

    /***
     * 保存完工时间
     * @param id
     */
    void AddEndTime(Long id);

    /**
     * 修改部装继续
     * @param continueDto
     */
    void continueTask(ContinueDto continueDto);

    /**
     * 修改总装继续
     * @param continueDto
     */
    void continueTasks(ContinueDto continueDto);
}
